package it.pecuswap.backend.entities;

// Generated 31-dic-2014 16.28.33 by Hibernate Tools 4.0.0

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * TipologiaPacchetti generated by hbm2java
 */
@Entity
@Table(name = "tipologia_pacchetti")
public class TipologiaPacchetti implements java.io.Serializable {

	private static final long serialVersionUID = 3474428502345677575L;
	private long idTipologiaPacchetto;
	private ModalitaVendita modalitaVendita;
	private PosizioneBanner posizioneBanner;
	private String descrizione;
	private Date dataInizioVisibilita;
	private Date dataFineVisibilita;
	private String piattoforma;
	private Long numFoto;
	private Long maxCrediti;
	private Float prezzo;
	private Set<AcquistiShop> acquistiShops = new HashSet<AcquistiShop>(0);

	public TipologiaPacchetti() {
	}

	public TipologiaPacchetti(long idTipologiaPacchetto) {
		this.idTipologiaPacchetto = idTipologiaPacchetto;
	}

	public TipologiaPacchetti(long idTipologiaPacchetto,
			ModalitaVendita modalitaVendita, PosizioneBanner posizioneBanner,
			String descrizione, Date dataInizioVisibilita,
			Date dataFineVisibilita, String piattoforma, Long numFoto,
			Long maxCrediti, Float prezzo, Set<AcquistiShop> acquistiShops) {
		this.idTipologiaPacchetto = idTipologiaPacchetto;
		this.modalitaVendita = modalitaVendita;
		this.posizioneBanner = posizioneBanner;
		this.descrizione = descrizione;
		this.dataInizioVisibilita = dataInizioVisibilita;
		this.dataFineVisibilita = dataFineVisibilita;
		this.piattoforma = piattoforma;
		this.numFoto = numFoto;
		this.maxCrediti = maxCrediti;
		this.prezzo = prezzo;
		this.acquistiShops = acquistiShops;
	}

	@Id
	@Column(name = "id_tipologia_pacchetto", unique = true, nullable = false)
	public long getIdTipologiaPacchetto() {
		return this.idTipologiaPacchetto;
	}

	public void setIdTipologiaPacchetto(long idTipologiaPacchetto) {
		this.idTipologiaPacchetto = idTipologiaPacchetto;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_modalita_vendita")
	public ModalitaVendita getModalitaVendita() {
		return this.modalitaVendita;
	}

	public void setModalitaVendita(ModalitaVendita modalitaVendita) {
		this.modalitaVendita = modalitaVendita;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_posizione_banner")
	public PosizioneBanner getPosizioneBanner() {
		return this.posizioneBanner;
	}

	public void setPosizioneBanner(PosizioneBanner posizioneBanner) {
		this.posizioneBanner = posizioneBanner;
	}

	@Column(name = "descrizione")
	public String getDescrizione() {
		return this.descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_inizio_visibilita", length = 29)
	public Date getDataInizioVisibilita() {
		return this.dataInizioVisibilita;
	}

	public void setDataInizioVisibilita(Date dataInizioVisibilita) {
		this.dataInizioVisibilita = dataInizioVisibilita;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_fine_visibilita", length = 29)
	public Date getDataFineVisibilita() {
		return this.dataFineVisibilita;
	}

	public void setDataFineVisibilita(Date dataFineVisibilita) {
		this.dataFineVisibilita = dataFineVisibilita;
	}

	@Column(name = "piattoforma")
	public String getPiattoforma() {
		return this.piattoforma;
	}

	public void setPiattoforma(String piattoforma) {
		this.piattoforma = piattoforma;
	}

	@Column(name = "num_foto")
	public Long getNumFoto() {
		return this.numFoto;
	}

	public void setNumFoto(Long numFoto) {
		this.numFoto = numFoto;
	}

	@Column(name = "max_crediti")
	public Long getMaxCrediti() {
		return this.maxCrediti;
	}

	public void setMaxCrediti(Long maxCrediti) {
		this.maxCrediti = maxCrediti;
	}

	@Column(name = "prezzo", precision = 8, scale = 8)
	public Float getPrezzo() {
		return this.prezzo;
	}

	public void setPrezzo(Float prezzo) {
		this.prezzo = prezzo;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tipologiaPacchetti")
	public Set<AcquistiShop> getAcquistiShops() {
		return this.acquistiShops;
	}

	public void setAcquistiShops(Set<AcquistiShop> acquistiShops) {
		this.acquistiShops = acquistiShops;
	}

}
